The present invention relates generally to computer programming language and particularly, to system and method of dynamic object synthesis with automatic late binding.
Currently available scripting languages for example, for manipulating databases or other application systems are typically resource-intensive and are not easy to learn. Accordingly, it is desirable to have a programming language with a command set that are simple to implement and yet efficiently cover what developers need to create high-end interactive applications. It is also desirable that this language include a capability to dynamically synthesize objects and automatically bind them.
The present invention is directed to a method and system for dynamically synthesizing objects and automatically binding the objects to an associated memory location. The method and system of the present invention determines the objects to synthesize by examining the object type that is embedded in the object identifier or the object name. In the present invention, synthesis is efficiently performed by invoking a method associated with the object type. Because object types are already specified in the object itself, there is no need to refer to class definition files to determine which methods and attributes are available to the object.
The method and system of the present invention dynamically creates buffers to hold data associated with the object. A synthesized symbol name is then inserted into the symbol table and automatically linked or bound to the buffers. The method and system of the present invention also performs the actual transfer of data into the buffers, thus linking the symbol name with actual data.
With the present invention, programmers or writers of programming code need not explicitly declare variables. Instead, the method and system of the present invention automatically synthesizes variables. Consequently, the number of lines of code typically required in software code is reduced thereby reducing the time to develop and implement software code. Because the present invention need not have explicit declarations for each variable used, developing software code becomes faster and easier. Moreover, the present invention enables lines of code to be embedded into code of another language, for example, hypertext markup language (xe2x80x9cHTMLxe2x80x9d).
Further, the present invention enhances storage efficiency because less lines of programming code also results in less memory space required to store the code. Moreover, the present invention enables programmers and/or developers to easily identify and isolate errors by visual inspection, thereby enhancing greater ease in debugging codes.
The present invention can be easily integrated into an interactive development environment (xe2x80x9cIDExe2x80x9d) such as Visual Basic and Java Symantic Cafe. The present invention greatly reduces complexity involved in programming, for example, World Wide Web (xe2x80x9cwebxe2x80x9d) page design and implementation because database field names are directly mapped to dynamically synthesized variable names.
Further features and advantages of the present invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.